前言

我们的ssh登陆很可能会被人暴力破解, 所以我们需要防止这种事情发生.

不管是修改端口, 修改登陆用户名, 等等情况不能阻止别人暴力破解我们服务器.

而应对这种暴力破解我们只有监控登陆用户的行为, 然后根据登陆用户失败的次数来封禁该ip. 这也是我们的最后一道防线.

正文

防暴力破解脚本

我们只需要写一个脚本, 该脚本会提取/var/log/secure的登陆ip和失败次数. 只要失败次数超过一定限度我们就把该ip丢尽/etc/hosts.deny中进行封禁.

#! /bin/bash

#先提取secure文件中登陆失败的ip并记录个数, 然后写进blackList.txt文件中
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/sbin/blackList.txt

#遍历该文件内容
for i in `cat  /usr/local/sbin/blackList.txt`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
  #如果ip登陆失败超过20次,检查/etc/hosts.deny中是否已经包含了该ip
   if [ $NUM -gt 20 ];then
      grep $IP /etc/hosts.deny > /dev/null
    #如果没有被禁用, 我们就禁用, 并且记录日志, 方便自己查看
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
      echo "新增异常IP: $IP" >> /usr/local/sbin/secure_ssh.log
    fi
  fi
done

该脚本会检查ip失败登陆次数, 如果超过20次, 就会封禁该ip

crontab定时计划

只要配合crontab定时任务就能实现防止暴力破解的风险.

#每五分钟执行一次该脚本
echo "*/5 * * * * root bash /usr/local/sszas/script/prevents-brute-force-cracking.sh" >> /etc/crontab

总结

经过上面的步骤我们就能防止暴力破解, 不过这不是万能的, 为了安全, 我们应该修改端口, 并且禁止root账户登陆, 还应该使密码更复杂.

THE END
推荐文章
  • nginx开启gzip压缩, 提升网站访问速度

  • docker pull 拉取镜像使用代理

  • linux安装git

  • jQuery Object 和 HTML Element间的转换

  • 鼓漱,让牙齿更强健

  • 黄帝内经-第41篇-刺腰痛篇(2)

  • 微信公众号菜单设置历史文章

  • Win10系统中,解决电脑磁盘无法格式化

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字